Public Class xtf_ABMtarea

    Dim ulg_row As DataRow
    Dim obj_tarea As cls_tarea_ = Nothing

    Public Sub New()
        InitializeComponent()
        cargarCombo(cbo_tipo, GetType(cls_tarea_.enu_tipo))
        cargarCombo(cbo_importancia, GetType(cls_tarea_.enu_importancia))
        cargarCombo(cbo_recordatorioTipoperiodicidad, GetType(cls_recordatorio_.enu_tipoperiodicidad))
        Dim tercero As New cls_tercero_
        tercero.CargarTodos()
        cargarCombo(cbo_idtercero, tercero.Items, False)
        AgregarValidaciones()
    End Sub


    Public Shadows Sub Nuevo(ByRef listado As Form)
        Try
            frm_listado = listado
            Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - Nuevo"
            obj_tarea = New cls_tarea_
            btn_Registro.Enabled = False
            dtp_fecha.DateTime = Now
            dtp_hora.DateTime = Now
            dtp_vencimiento.DateTime = Now
            dtp_vencimientoRE.DateTime = Now

            obj_tarea.recordatorio = New cls_recordatorio_

            Me.Show()
        Catch ex As Exception
            'Dim frmError As New frm_ErrorManager(ex.Message)
        End Try
    End Sub

    Public Shadows Sub Modificar(ByRef tarea As cls_tarea_, ByRef listado As Form, ByRef row As DataRow)
        If IsNothing(tarea) Then
            obj_tarea = New cls_tarea_
        End If
        obj_tarea = tarea
        frm_listado = listado
        ulg_row = row

        Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - " & obj_tarea.ToString
        txt_idtarea.Text = obj_tarea.idtarea
        dtp_fecha.DateTime = obj_tarea.fecha.Date
        dtp_hora.DateTime = obj_tarea.hora
        txt_ubicacion.Text = obj_tarea.ubicacion
        cbo_importancia.EditValue = obj_tarea.importancia
        txt_orden.Text = obj_tarea.orden
        cbo_idtercero.EditValue = obj_tarea.idtercero
        txt_descripcion.Text = obj_tarea.descripcion
        mme_notas.Text = obj_tarea.notas
        chk_pendiente.Checked = obj_tarea.pendiente
        dtp_vencimiento.DateTime = obj_tarea.vencimiento
        dtp_vencimientoRE.DateTime = obj_tarea.vencimientoRE
        cbo_tipo.EditValue = obj_tarea.tipo
        txt_idrecordatorio.Text = obj_tarea.idrecordatorio
        cbo_idregistro.EditValue = obj_tarea.idregistro

        txt_idrecordatorio.Text = obj_tarea.recordatorio.idrecordatorio
        cbo_recordatorioTipo.Text = obj_tarea.recordatorio.tipo
        dtp_recordatorioFecha.DateTime = obj_tarea.recordatorio.fecha
        dtp_recordatorioHora.DateTime = obj_tarea.recordatorio.hora
        cbo_recordatorioTipoperiodicidad.EditValue = obj_tarea.recordatorio.tipoperiodicidad

        btn_Registro.Enabled = True

        Me.Show()

    End Sub

    Public Overrides Function ComprobarDatos() As Boolean
        If Not ControlarValidaciones() Then
            ErrManagerShow("000004", Me)
            Return False
        End If
        Return True
    End Function

    Public Shadows Sub btn_Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Guardar.Click
        If ComprobarDatos() Then
            obj_tarea.fecha = dtp_fecha.DateTime
            obj_tarea.hora = dtp_hora.DateTime
            obj_tarea.ubicacion = txt_ubicacion.Text
            obj_tarea.importancia = cbo_importancia.EditValue
            obj_tarea.orden = txt_orden.Text
            obj_tarea.idtercero = cbo_idtercero.EditValue
            obj_tarea.descripcion = txt_descripcion.Text
            obj_tarea.notas = mme_notas.Text
            obj_tarea.pendiente = chk_pendiente.Checked
            obj_tarea.vencimiento = dtp_vencimiento.DateTime
            obj_tarea.vencimientoRE = dtp_vencimientoRE.DateTime
            obj_tarea.tipo = cbo_tipo.EditValue
            obj_tarea.idrecordatorio = txt_idrecordatorio.Text
            'obj_tarea.idregistro = cbo_idregistro.EditValue

            obj_tarea.recordatorio.tipo = cbo_recordatorioTipo.EditValue
            obj_tarea.recordatorio.fecha = dtp_recordatorioFecha.DateTime
            obj_tarea.recordatorio.hora = dtp_recordatorioHora.DateTime
            obj_tarea.recordatorio.tipoperiodicidad = cbo_recordatorioTipoperiodicidad.EditValue

            If txt_idtarea.Text = "" Then
                obj_tarea.Nuevo(True)
                If frm_listado.Visible Then
                    ulg_row = CType(frm_listado, xtf_LISTADOtarea_).AgregarItem(obj_tarea)
                End If
                Modificar(obj_tarea, frm_listado, ulg_row)
            Else
                obj_tarea.Modificar()
                If frm_listado.Visible Then
                    CType(frm_listado, xtf_LISTADOtarea_).ModificarItem(obj_tarea, ulg_row)
                End If
                Modificar(obj_tarea, frm_listado, ulg_row)
            End If
            flg_Modificado = False : btn_Guardar.Enabled = False : bbi_guardar.Enabled = False

        End If
    End Sub

    Private Sub btn_Registro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Registro.Click
        If Not IsNothing(obj_tarea.registro) Then
            Dim ABMRegistro As New xtf_ABMRegistro(obj_tarea.registro)
            If ABMRegistro.ShowDialog() = Windows.Forms.DialogResult.OK Then
                flg_Modificado = True
            End If
        End If
    End Sub

    Private Sub btn_Cerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Cerrar.Click
        If flg_Modificado Then
            bol_comprobarCerrado = False
            Select Case ErrManagerShow("000001", Me)
                Case Windows.Forms.DialogResult.Yes
                    If ComprobarDatos() Then
                        btn_Guardar_Click(Nothing, Nothing)
                    Else
                        Exit Sub
                    End If
                Case Windows.Forms.DialogResult.Cancel : bol_comprobarCerrado = True
                    Exit Sub
            End Select
        End If
        Me.Dispose()
    End Sub

    Private Sub dtp_fecha_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtp_fecha.EditValueChanged
        dtp_recordatorioFecha.DateTime = dtp_fecha.DateTime
    End Sub

    Private Sub dtp_hora_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtp_hora.EditValueChanged
        dtp_recordatorioHora.DateTime = dtp_hora.DateTime
    End Sub

    Private Sub cbo_recordatorioTipoperiodicidad_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbo_recordatorioTipoperiodicidad.EditValueChanged
        dtp_recordatorioFecha.Properties.Mask.UseMaskAsDisplayFormat = True
        Select Case CType(cbo_recordatorioTipoperiodicidad.EditValue, cls_recordatorio_.enu_tipoperiodicidad)
            Case cls_recordatorio_.enu_tipoperiodicidad.Ninguna
                dtp_recordatorioFecha.Properties.Mask.EditMask = "dd/MM/yy"
            Case cls_recordatorio_.enu_tipoperiodicidad.Semanal
                dtp_recordatorioFecha.Properties.Mask.EditMask = "dddd"
            Case cls_recordatorio_.enu_tipoperiodicidad.Mensual
                dtp_recordatorioFecha.Properties.Mask.EditMask = "dd"
            Case cls_recordatorio_.enu_tipoperiodicidad.Bimestral
                dtp_recordatorioFecha.Properties.Mask.EditMask = "dd 'de' MMMM"
            Case cls_recordatorio_.enu_tipoperiodicidad.Anual
                dtp_recordatorioFecha.Properties.Mask.EditMask = "dd 'de' MMMM"
        End Select
    End Sub
End Class

